package com.xiyu.service.convert.material;

import com.xiyu.service.model.material.stock.MaterialStockDetail;
import com.xiyu.service.vo.material.transfer.TransferSingleGetDetailOutput;
import com.xiyu.service.vo.material.transfer.TransferSingleGetOutput;
import com.xiyu.service.vo.material.transfer.TransferUpdateInput;
import com.xiyu.service.vo.material.transfer.TransferCreateInput;
import com.xiyu.service.model.material.order.MaterialTransferDetail;
import com.xiyu.service.vo.material.transfer.TransferPageQueryOutput;
import com.xiyu.service.model.material.order.MaterialTransfer;
import java.util.*;

import org.babyfish.jimmer.sql.ast.tuple.Tuple2;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import org.babyfish.jimmer.Page;

/**
 * 调拨单管理 Convert
 */
@Mapper
public interface TransferConvert {
    TransferConvert INSTANCE = Mappers.getMapper(TransferConvert.class);


    List<TransferPageQueryOutput> pageQueryOutputConvert(List<MaterialTransfer> output);

    MaterialTransfer createInputConvert(TransferCreateInput input);

    MaterialTransferDetail createInputConvert(TransferCreateInput.detail input);

    MaterialTransfer updateInputConvert(TransferUpdateInput input);

    MaterialTransferDetail updateInputConvert(TransferUpdateInput.detail input);

    TransferSingleGetOutput singleGetOutputConvert(MaterialTransfer output);

    List<TransferSingleGetOutput.detail> singleGetOutputConvert(List<Tuple2<MaterialTransferDetail, MaterialStockDetail>> output);

    List<TransferSingleGetDetailOutput> singleGetDetailOutputConvert(List<MaterialTransferDetail> output);

}
